Many computers are provided with the functionality to output some form of log. The information included in logs is useful for investigating the cause of a fault when a fault has occurred, for example. However, log output processing is a type of overhead, and it is therefore undesirable to output logs that include unnecessarily large amounts of information.
Therefore, in the acquisition of logs for ascertaining the state of a system, the volume of the logs that are output is limited by a log level setting that corresponds to the objective (storage capacity, performance deterioration due to log acquisition). If a fault or the like has occurred, a detailed log (high log level) is desired, and in order to set the log level setting to the appropriate level, information such as application execution records and so forth is used.
To date, a logging system in which the portions to be output to an event log are efficiently limited and are able to be changed dynamically has been proposed (for example, Japanese Laid-open Patent Publication No. 2004-094374). In this logging system, a log management program refers to the content of a log output setting table to ascertain the call origin and the finish of a target method.
Furthermore, a logging apparatus in which data regarding checkpoints during the execution of an application program are logged in real time has been proposed (for example, Japanese Laid-open Patent Publication No. 2009-205488). In this apparatus, a log output condition that is externally preset and a plurality of log output functions that are called at the checkpoints are incorporated into the application program. Normally, a log is output only when an error level specified by a parameter of a log output function coincides with a normal log output condition. If an error level coinciding with a trigger level occurs, a detailed log of the error level, which coincides with an abnormal log output level, is output.
An information processing apparatus such as follows that executes response processing for a request output from a client computer has been proposed with the objective of increasing the operability of a server (for example, Japanese Laid-open Patent Publication No. 2012-18512).
This information processing apparatus is provided with a storage device that stores a first program for executing response processing for a request output from a client computer, and is provided with a computation processing device. When a first request is received from the client computer, this computation device duplicates a first program and the first request, executes a second program that is a duplicate of the first program, and monitors the response processing of the first program with respect to the first request. If a fault in the response processing of the first program is detected, this computation device executes the second program, and carries out response processing with respect to the second request that is a duplicate of the first request.
However, in schemes in which the output states of logs are limited in accordance with the target method and only logs for checkpoints are output, there has been a problem in that it has not been possible to obtain detailed log output in cases such as when a fault occurs due to an input value of a method or an internal state.
Furthermore, in schemes in which programs are duplicated to deal with faults, there has been a problem in that the overhead of the duplication processing is large.
Therefore, in one aspect, an objective is to make it possible for detailed logs to be output also in cases such as when a fault occurs due to an input value of a method or an internal state.